package com.sunyard.pcc.dal.mapper.ext;

import com.sunyard.pcc.common.bo.SysMenuBO;
import com.sunyard.pcc.dal.mapper.SysMenuMapper;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

/**
 * MyBatis Ext Mapper for SysMenu.
 */
@Mapper
@Repository
public interface SysMenuExtMapper extends SysMenuMapper {

    /**
     * 根据角色编号查询对应菜单列表，有重复
     *
     * @param roleIds
     * @return
     */
    List<SysMenuBO> selectMenusByRoleIds(List<Long> roleIds);


    /**
     * 查询父菜单下所有菜单的最大sort
     * @param parentId
     * @return
     */
    Integer selectMaxSortByParentId(Long parentId);


    /**
     * 条件查询菜单列表
     * @param query
     * @return
     */
    List<SysMenuBO> selectMenuListByMap(Map<String, Object> query);


    /**
     * 条件查询树形结构下菜单总数
     * @param query
     * @return
     */
    Integer selectCountInTreeMode(Map<String, Object> query);

    /**
     * 查询所有菜单列表， 按菜单类型进行排列
     * @return
     */
    List<SysMenuBO> selectAllMenus();
}